home *** CD-ROM | disk | FTP | other *** search
/ Mac Format 1994 October / Macformat17.cdr / Shareware City / Developers / GAL ƒ / GEM manual (text) < prev   
Text File  |  1994-07-11  |  8KB  |  128 lines

  1. ----------------------------- GAL-GEM -----------------------------
  2.    
  3. GAL-GEM is a complete machine emulator for the GAL (Generic Assembly Language) and GEM (GEneric Machine) computation models, as described in “Computer organization: a top down approach” by Greg W. Scragg (referred to as ‘CO’ throughout this document).    
  4.  
  5. “Computer Organization: a top down approach” focuses on assembly language at the conceptual level, relatively free of the restrictions of real assembly languages, and illustrates important concepts through  a  Generic Assembly Language: GAL.  Many readers  have requested  software that supports that language and provides students with  hands on experience.  In response, I have created a full emulator for the GAL language and the corresponding GEneric Machine, GEM. 
  6.  
  7. ---------------------------------------------------------------
  8. GEM 1.1 fixes several bugs in 1.0 and adds user I/O.
  9. ---------------------------------------------------------------
  10.  
  11.     GEM 1.0 accepts GAL assembly language programs, assembles and runs them on its CPU emulator. It displays continuously updated information about the current state of the program, allowing students to follow the execution at the machine level  This display includes:
  12.     * original GAL source code
  13.     * GEM machine language code
  14.     * cross referencing between the two sets of codes
  15.     * all data registers
  16.     * major system registers, including PC, IR, MAR, MBR, and CC.
  17.     * output window for user program output
  18.     * all referenced RAM locations
  19.     * highlighting of current instruction in both machine and assembly language windows
  20.  
  21.     The assembler accepts the full GAL language. The emulation can be run at a reduced speed for ease of following the execution. Instructions can be executed singly, or even a  single cycle at a time. The user can choose between  binary, decimal or hexadecimal representation of the registers.  The PC can be reset, allowing repeated execution without reloading or reassembling. Simple I/O tools eliminate many of the I/O roadblocks to beginning assembly or organization students.  All windows are scrollable, allowing easy use with longer programs (or smaller displays),   
  22.  
  23. --------------------------- Basic operation of the emulator ---------------------------
  24.  
  25. Machine and system requirements:
  26.     GAL-GEM will run on any Mac running system 7.0 or later  with 128K of available RAM,  
  27.  
  28. The basic steps for using GAL-GEM are:
  29.  
  30.     Open a GAL language program.
  31.     Assemble the program.
  32.     Run the program.
  33.  
  34.  
  35. ----------------------------- Menu commands -----------------------------
  36.  
  37. File menu
  38.     Open :  opens and displays a single assembly language file.
  39.     Quit: terminates the emulator.
  40.  
  41. GAL&GEM Menu:
  42.     Assemble:  Assembles and loads the currently open GAL file.  The PC is italicized to the first instruction of object file. 
  43.     Run:  starts execution at the address currently pointed to by the PC.  Normally execution   continues until a halt instruction or an execution error  is encountered, In step or cycle mode, only a single step or cycle executes.
  44.     Reset:  reinitializes the PC and clears the output window, enabling the user to rerun a program without reassembling. 
  45.     
  46.     Step and cycle mode: Stepmode executes exactly one instruction per run command, serving as a useful debugging tool. Cyclemode executes one fetch or execute cycle per instruction and is useful for understanding the fetch-execute cycle. Note that one cycle is treated as a fetch or execute step -- not as one bus cycle. All operands are fetched in a single fetch step. 
  47.  
  48.     Slowmode:  slows GEM down to approximately 1 instruction per second for following the execution flow.
  49.  
  50.      Tracing: With tracing turned off, programs will execute at many times their normal speed but no trace of the execution is displayed. When execution is complete, all registers are updated.  Changes to RAM are recorded but not highlighted. This feature is useful when you are only interested in the final result and do not care about the steps.
  51.  
  52.     Binary, decimal and Hexadecimal: select the radix for register display. 
  53.  
  54.     I/O handshaking: turns on input handshaking as described in the  I/O section below.
  55.  
  56. View menu
  57.     Bring any window display window to the front, or toggle the control panel between visible and invisible.
  58.  
  59.  
  60. ---------------------------- Control Panel ----------------------------
  61.  
  62.     The control panel duplicates the menu commands needed for basic operation of the emulator: load (open), assemble, run, reset and exit.  
  63.  
  64.  
  65. ---------------------------- GAL Syntax ----------------------------
  66.  
  67.      The emulator is faithful to the description of the  GAL language in Chapters 2 and 5 of ‘CO.’  Exceptions are:
  68.  
  69. Arrows:
  70.     GAL uses single and double shafted arrows to separate operands. Since most standard keyboards do not have arrows, GAL allows any of the follow as delimiters:
  71.     =>    (equal-arrow)
  72.     ->    (minus arrow)
  73.     ,    (comma)
  74. Although the single and double shafted arrows are used for distinct purposes in GAL, the emulator does not punish the user for misuse.
  75.  
  76. In addition to code, the assembler allows blank lines, comment only lines and lines containing only a label..
  77.  
  78. Tabs stops are set every 3 columns. 
  79.  
  80.  
  81. -----------------------------Sample programs-----------------------------
  82.  
  83.     The sample programs include a file containing GAL version of all subroutines referenced in ‘CO,’ including ‘input’ and ‘output.’ Users may include them them in their own programs.
  84.  
  85. -----------------------------Writing GAL program files-----------------------------
  86.     
  87.     Input for the GAL emulator can be any text-only file,  created with any word or text processor.  The word processor file may be left open while running the emulator, for ease in debugging.
  88.  
  89.     If possible set, tab stops on the word processor to every three columns. This will make consistent alignment easier in the assembly language window.
  90.  
  91.  
  92. ---------------------------- I/O considerations ----------------------------
  93.  
  94.     During execution of a user program, the host  machine’s keyboard serves as the input device for the GEM machine. Keyboard input (except control characters) are passed directly to the emulator. Control characters are intercepted and cannot be used as input to the emulated program.
  95.  
  96. Input is unbuffered. That will result in lost input if the user types more than one character ahead of the user program’s attempts to read.
  97.  
  98. Handshaking: 
  99.     GEM  has optionally hardware handshaking for input. With handshaking enabled (default),  any attempt by the user program to read input when none is available will cause the CPU to wait for input.  With handshaking enabled, the user programs need not check the status of the input port. With handshaking turned off, the user program can implement software handshaking as described in Chapter 12 of ‘CO.’ Output buffering causes no problems with or without handshaking. 
  100.  
  101. I/O ports: 
  102.     GEM uses memory addresses 0-3 as I/O ports as follows:
  103.     address    use            name
  104.     0        input status byte    inputstatus
  105.     1        input data byte        inputdata
  106.     2        output status byte    outputstatus
  107.     3        output data byte    outputdata
  108. The user program should not use these addresses for other purposes. The names of those locations are pre-declared and should not be declared by the user program. 
  109.  
  110.  
  111. ---------------------------- Memory locations ----------------------------
  112.  
  113.     All programs assemble and load to location 16 (10 hex).  Locations 0-3 are used for the I/O ports. Bytes 4-15 are unused.
  114.  
  115.  
  116. ---------------------------- Restrictions ----------------------------
  117.  
  118.     The emulator currently has a limit of 300 lines of GAL assembly code or 1200 bytes of GEM memory.
  119.  
  120. ---------------------------- Shareware notice ----------------------------
  121.  
  122.     GAL-GEM is shareware -- however it is available free to its intended audience: users of “Computer Organization: a top-down approach” by Greg Scragg. I ask only that you send me a message (Email, snailmail, whatever) saying that you are using it (comments, complaints, requests, etc. are, of course, welcome).
  123.     For other users, the shareware price is $15 for a single copy or $100 for a site license. Exploration and testing, are, of course, free. No permission is granted for any commercial purposes.
  124.  
  125. Greg Scragg
  126. 5556 Bald hill Rd.
  127. Springwater, NY 14560
  128. scragg@cs,geneseo.edu